home *** CD-ROM | disk | FTP | other *** search
- case 16: /* image thresholding */
- printf("\nCIPS> Enter input image name\n");
- get_image_name(name);
- printf("\nCIPS> Enter output image name\n");
- get_image_name(name2);
- get_parameters(&il, &ie, &ll, &le);
- get_threshold_options(ts_method, &hi,
- &low, &value);
- if(ts_method[0] == 'm' ||
- ts_method[0] == 'M')
- manual_threshold_segmentation(name,
- name2, the_image, out_image,
- il, ie, ll, le,
- hi, low, value, 0);
- if(ts_method[0] == 'p' ||
- ts_method[0] == 'P')
- peak_threshold_segmentation(name,
- name2, the_image, out_image,
- il, ie, ll, le, value, 0);
- if(ts_method[0] == 'v' ||
- ts_method[0] == 'V')
- valley_threshold_segmentation(name,
- name2, the_image, out_image,
- il, ie, ll, le, value, 0);
- if(ts_method[0] == 'a' ||
- ts_method[0] == 'a')
- adaptive_threshold_segmentation(name,
- name2, the_image, out_image,
- il, ie, ll, le, value, 0);
- break;
-
- case 17: /* image segmentation */
- printf("\nCIPS> Enter input image name\n");
- get_image_name(name);
- printf("\nCIPS> Enter output image name\n");
- get_image_name(name2);
- get_parameters(&il, &ie, &ll, &le);
- get_segmentation_options(ts_method, &hi,
- &low, &value);
- if(ts_method[0] == 'm' ||
- ts_method[0] == 'M')
- manual_threshold_segmentation(name,
- name2, the_image, out_image,
- il, ie, ll, le,
- hi, low, value, 1);
- if(ts_method[0] == 'p' ||
- ts_method[0] == 'P')
- peak_threshold_segmentation(name,
- name2, the_image, out_image,
- il, ie, ll, le, value, 1);
- if(ts_method[0] == 'v' ||
- ts_method[0] == 'V')
- valley_threshold_segmentation(name,
- name2, the_image, out_image,
- il, ie, ll, le, value, 1);
- if(ts_method[0] == 'a' ||
- ts_method[0] == 'a')
- adaptive_threshold_segmentation(name,
- name2, the_image, out_image,
- il, ie, ll, le, value, 1);
- break;
-
- .
- .
- .
-
- /******************************************************
- *
- * show_menu(..
- *
- * This function displays the CIPS main menu.
- *
- *******************************************************/
- show_menu()
- {
-
- printf("\n\nWelcome to CIPS");
- printf("\nThe C Image Processing System");
- printf("\nThese are you choices:");
- printf("\n\t1. Display image header");
- printf("\n\t2. Show image numbers");
- printf("\n\t3. Print image numbers");
- printf("\n\t4. Display image (VGA & EGA only)");
- printf("\n\t5. Display or print image using halftoning");
- printf("\n\t6. Print graphics image using dithering");
- printf("\n\t7. Print or display histogram numbers");
- printf("\n\t8. Perform edge detection");
- printf("\n\t9. Perform edge enhancement");
- printf("\n\t10. Perform image filtering");
- printf("\n\t11. Perform image addition and subtraction");
- printf("\n\t12. Perform image cutting and pasting");
- printf("\n\t13. Perform image rotation and flipping");
- printf("\n\t14. Perform image scaling");
- printf("\n\t15. Create a blank image");
- printf("\n\t16. Perform image thresholding");
- printf("\n\t17. Perform image segmentation");
- printf("\n\t20. Exit system");
- printf("\n\nEnter choice _\b");
-
- } /* ends show_menu */
-
- .
- .
- .
-
- /********************************************
- *
- * get_segmentation_options(...
- *
- * This function interacts with the user
- * to obtain the options for image
- * segmentation.
- *
- *********************************************/
-
- get_segmentation_options(method, hi, low, value)
- char method[];
- short *hi, *low, *value;
- {
- int i, not_finished = 1, response;
-
- while(not_finished){
- printf("\n\nThe image segmentation options are:\n");
- printf("\n\t1. Method is %s", method);
- printf("\n\t (options are manual peaks");
- printf( " valleys adapative)");
- printf("\n\t2. Value is %d", *value);
- printf("\n\t3. Hi is %d", *hi);
- printf("\n\t4. Low is %d", *low);
- printf("\n\t Hi and Low needed only for");
- printf( " manual method");
- printf("\n\nEnter choice (0 = no change):_\b");
-
- get_integer(&response);
-
- if(response == 0)
- not_finished = 0;
-
- if(response == 1){
- printf("\nEnter method (options are:");
- printf(" manual peaks valleys adaptive)\n\t");
- read_string(method);
- }
-
- if(response == 2){
- printf("\nEnter value: ___\b\b\b");
- get_short(value);
- }
-
- if(response == 3){
- printf("\nEnter hi: ___\b\b\b");
- get_short(hi);
- }
- if(response == 4){
- printf("\nEnter low: ___\b\b\b");
- get_short(low);
- }
-
- } /* ends while not_finished */
- } /* ends get_segmentation_options */
-
- /********************************************
- *
- * get_threshold_options(...
- *
- * This function interacts with the user
- * to obtain the options for image
- * threshold.
- *
- *********************************************/
-
- get_threshold_options(method, hi, low, value)
- char method[];
- short *hi, *low, *value;
- {
- int i, not_finished = 1, response;
- while(not_finished){
- printf("\n\nThe image threshold options are:\n");
- printf("\n\t1. Method is %s", method);
- printf("\n\t (options are manual peaks");
- printf( " valleys adapative)");
- printf("\n\t2. Value is %d", *value);
- printf("\n\t3. Hi is %d", *hi);
- printf("\n\t4. Low is %d", *low);
- printf("\n\t Hi and Low needed only for");
- printf( " manual method");
- printf("\n\nEnter choice (0 = no change):_\b");
-
- get_integer(&response);
-
- if(response == 0)
- not_finished = 0;
-
- if(response == 1){
- printf("\nEnter method (options are:");
- printf(" manual peaks valleys adaptive)\n\t");
- read_string(method);
- }
-
- if(response == 2){
- printf("\nEnter value: ___\b\b\b");
- get_short(value);
- }
-
- if(response == 3){
- printf("\nEnter hi: ___\b\b\b");
- get_short(hi);
- }
- if(response == 4){
- printf("\nEnter low: ___\b\b\b");
- get_short(low);
- }
-
- } /* ends while not_finished */
- } /* ends get_threshold_options */
-
-